import request from '@/utils/request'
const base = '/apipermissions'

/**
 * 查询ApiPermissions数据列表
 * @param {Object} query - 查询参数
 * @returns {Promise} - Axios请求的Promise对象
 */
export function listApiPermissions(query) {
  return request({
    url: `${base}/list`,
    method: 'get',
    params: query
  })
}

/**
 * 查询ApiPermissions数据详细
 * @param {number} id - ApiPermissions的唯一标识
 * @returns {Promise} - Axios请求的Promise对象
 */
export function getApiPermissions(id) {
  return request({
    url: `${base}/${id}`,
    method: 'get'
  })
}


/**
 * 新增ApiPermissions数据
 * @param {Object} data - 新增的ApiPermissions数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function addApiPermissions(data) {
  return request({
    url: `${base}`,
    method: 'post',
    data: data
  })
}

/**
 * 修改ApiPermissions数据
 * @param {Object} data - 修改的ApiPermissions数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function updateApiPermissions(data) {
  return request({
    url: `${base}`,
    method: 'put',
    data: data
  })
}

/**
 * 删除ApiPermissions数据
 * @param {number|number[]} ids - 要删除的ApiPermissions的ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function delApiPermissions(ids) {
  return request({
    url: `${base}`,
    method: 'delete',
    data: ids
  })
}


/**
 * 扫描当前api数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function scanApi() {
  return request({
    url: `${base}/scan`,
    method: 'get',
  })
}

/**
 * 同步api数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function apiSync(data) {
  return request({
    url: `${base}/sync`,
    method: 'put',
    data: data
  })
}

/**
 * 获取api下拉数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function apipermissionsOptions(keyword) {
  return request({
    url: `${base}/option`,
    method: 'get',
    params: { keyword: keyword }
  })
}


/**
 * 获取差异api
 * @returns {Promise} - Axios请求的Promise对象
 */
export function apiPermissionsDiff() {
  return request({
    url: `${base}/diff`,
    method: 'get',
  })
}


/**
 * 批量设置状态
 * @returns {Promise} - Axios请求的Promise对象
 */
export function apiPermissionsSetStatus(data) {
  return request({
    url: `${base}/bulk/status`,
    method: 'put',
    data: data
  })
}

/**
 * 批量设置日志开关
 * @returns {Promise} - Axios请求的Promise对象
 */
export function apiPermissionsSetTrackStatus(data) {
  return request({
    url: `${base}/bulk/trackStatus`,
    method: 'put',
    data: data
  })
}







